package cn.huiyunche.base.service.enums;

import java.util.ArrayList;
import java.util.HashMap;

/**
 * Created by qichao on 2017/3/2.
 */
public class FaceCompareResult {

    /**
     * 用于区分每一次请求的唯一的字符串
     */
    private String request_id;

    /**
     * 比对结果置信度，范围 [0,100]，小数点后3位有效数字，数字越大表示两个人脸越可能是同一个人。
     * 注：如果传入图片但图片中未检测到人脸，则无法进行比对，本字段不返回。
     */
    private float confidence;

    /**
     * 一组用于参考的置信度阈值，Object类型，包含三个字段，均为Float类型、取值［0，100］，小数点后3位有效数字。如果置信值低于“千分之一”阈值则不建议认为是同一个人，如果置信值超过“十万分之一”阈值，则是同一个人的几率非常高。
     * 1e-3: 误识率为千分之一的置信度阈值；
     * 1e-4: 误识率为万分之一的置信度阈值；
     * 1e-5: 误识率为十万分之一的置信度阈值;
     * 请注意：阈值不是静态的，每次比对返回的阈值不保证相同，所以没有持久化保存阈值的必要，更不要将当前调用返回的confidence与之前调用返回的阈值比较。
     * 注：如果传入图片但图片中未检测到人脸，则无法进行比对，本字段不返回。
     */
    private HashMap thresholds;

    /**
     * 被检测的image_url1或image_file1在系统中的标识。
     * 注：如果未使用image_url1或image_file1传入图片，本字段不返回。
     */
    private String image_id1;

    /**
     * 被检测的image_url2或image_file2在系统中的标识。
     * 注：如果未使用image_url2或image_file2传入图片，本字段不返回。
     */
    private String image_id2;

    /**
     * 整个请求所花费的时间，单位为毫秒。
     */
    private int time_used;

    /**
     * 当请求失败时才会返回此字符串，具体返回内容见后续错误信息章节。否则此字段不存在。
     */
    private String error_message;

    /**
     * 从image_url1或image_file1中检测出的人脸数组，采用数组中的第一个人脸进行人脸比对。
     * 注：如果未使用image_url1或image_file1传入图片，本字段不返回。如果没有检测出人脸则为空数组
     */
    private ArrayList faces1;

    /**
     * 从image_url2或image_file2中检测出的人脸数组，采用数组中的第一个人脸进行人脸比对。
     * 注：如果未使用image_url2或image_file2传入图片，本字段不返回。如果没有检测出人脸则为空数组
     */
    private ArrayList faces2;

    public String getImage_id1() {
        return image_id1;
    }

    public void setImage_id1(String image_id1) {
        this.image_id1 = image_id1;
    }

    public String getImage_id2() {
        return image_id2;
    }

    public void setImage_id2(String image_id2) {
        this.image_id2 = image_id2;
    }

    public ArrayList getFaces1() {
        return faces1;
    }

    public void setFaces1(ArrayList faces1) {
        this.faces1 = faces1;
    }

    public ArrayList getFaces2() {
        return faces2;
    }

    public void setFaces2(ArrayList faces2) {
        this.faces2 = faces2;
    }

    public String getRequest_id() {
        return request_id;
    }

    public void setRequest_id(String request_id) {
        this.request_id = request_id;
    }

    public float getConfidence() {
        return confidence;
    }

    public void setConfidence(float confidence) {
        this.confidence = confidence;
    }

    public HashMap getThresholds() {
        return thresholds;
    }

    public void setThresholds(HashMap thresholds) {
        this.thresholds = thresholds;
    }

    public int getTime_used() {
        return time_used;
    }

    public void setTime_used(int time_used) {
        this.time_used = time_used;
    }

    public String getError_message() {
        return error_message;
    }

    public FaceCompareResult setError_message(String error_message) {
        this.error_message = error_message;
        return this;
    }


    @Override
    public String toString() {
        return "FaceCompareResult{" +
                "request_id='" + request_id + '\'' +
                ", confidence=" + confidence +
                ", thresholds=" + thresholds +
                ", image_id1='" + image_id1 + '\'' +
                ", image_id2='" + image_id2 + '\'' +
                ", time_used=" + time_used +
                ", error_message='" + error_message + '\'' +
                ", faces1=" + faces1 +
                ", faces2=" + faces2 +
                '}';
    }
}
